package prv.behavioral.observer.example2;

import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;

public class ObserwowanyKonkretny implements Obserwowany {
	protected List<Obserwator> obserwatorzy = new ArrayList<Obserwator>();
	private StanObserwowanego stanObserwowanego;

	public void dodajObserwatora(Obserwator obserwator) {
		obserwatorzy.add(obserwator);
	}

	public void powiadomObserwatorow() {
		Iterator<Obserwator> it = obserwatorzy.iterator();
		while (it.hasNext()) {
			it.next().uaktualnij();
		}
	}

	public void usunObserwatora(Obserwator obserwator) {
		obserwatorzy.remove(obserwator);
	}

	public StanObserwowanego pobierzStan() {
		return stanObserwowanego;
	}

}
